layui.use(['bodyTab', 'form', 'javascriptutil','admin','contextMenu'], function () {
    var $ = layui.jquery;
    var bodyTab = layui.bodyTab;
    var element = layui.element;
    var form = layui.form;
    var admin = layui.admin;
    var javascriptutil = layui.javascriptutil;
    var contextMenu = layui.contextMenu;
    bodyTab.set({
        openTabNum: "10", //最大可打开窗口数量
        tabFilter: "bodyTab", //layui的element模块事件过滤器
        isRefreshCacheTab: true, //是否刷新页面时缓存tab
        ajaxSettings: { //ajax参数，与jquery.ajax一致
            url: "/static/json/menu.json",
           // url:"/sysPermissionsController/getTree",
            type: 'get'
        }
    });
    //判断是否设置过头像，如果设置过则修改顶部、左侧和个人资料中的头像，否则使用默认头像
    if(window.sessionStorage.getItem('userFace')){
        $(".userAvatar").attr("src",window.sessionStorage.getItem('userFace'));
    } else { // 获取数据库中的头像地址
        $(".userAvatar").attr("src","/static/images/head.png");
    }
    /* 
      [皮肤切换]
    */
    $('.skin').click(function () {
        var skin = $(this).attr("data-skin");
        admin.changeTheme(skin);
    });
    /* 
      [退出登录]
    */
    $("#closeBtn").click(function () {
        layer.confirm('是否要退出登录？', {
            btn: ['确定', '取消'], // 按钮
            offset: 'auto',
            move: false
        }, function (index) {
            // 确定登出
            window.location.href = 'logout'
            layer.close(index);
        }, function (index) {
            layer.close(index);
        });
    })
    /* 
      【全屏展示】
    */
    $("#fullScreen").click(function (e) {
        var a = "layui-icon-screen-full",
            i = "layui-icon-screen-restore",
            t = $(this).children("i");
        var docElm = document.documentElement;
        if (t.hasClass(a)) {
            t.addClass(i).removeClass(a);
            javascriptutil.fullscreen(docElm);
        } else {
            t.addClass(a).removeClass(i);
            javascriptutil.exitFullscreen();
            $("#navBar").height($(window).height() - 101);
        }

    })
    /* 
     * 右侧隐藏菜单
     * 2018-11-01
     *
     */
    $(".left-seraph").click(function () {
        if (!$(this).hasClass("js-active")) {
            $(this).addClass("js-active");
            $(".left-seraph i").addClass("layui-icon-spread-left");
        } else {
            $(this).removeClass("js-active");
            $(".left-seraph i").removeClass("layui-icon-spread-left");
        }
        $(".admin-container ").toggleClass("admin-nav-mini")
    })
    /* 
      个性化设置开关
    */
    $('#theme').click(function (e) {
        e.stopPropagation(); //阻止事件冒泡
        $(".individuation-mask").removeClass("layui-hide");
        $('.individuation').removeClass('layui-hide').toggleClass('bounceInRight').toggleClass('flipOutY');
    });
    $('.individuation').click(function (e) {
        e.stopPropagation(); //阻止事件冒泡
    })
    /* 
      监听侧边导航开关
    */
    form.on('switch(sidenav)', function (data) {
        if (data.elem.checked) {
            $(".left-seraph").removeClass("js-active");
            $(".admin-container ").removeClass("admin-nav-mini");
            $(".left-seraph i").removeClass("layui-icon-spread-left");
        } else {
            $(".left-seraph").addClass("js-active");
            $(".admin-container ").addClass("admin-nav-mini")
            $(".left-seraph i").addClass("layui-icon-spread-left");
        }
    });
    /* 关闭皮肤设置 */
    $(document).click(function () {
        $('div.short-menu').slideUp('fast');
        $('.individuation').removeClass('bounceInRight').addClass('flipOutY');
        $(".individuation-mask").addClass("layui-hide");
    });
    //手机设备的简单适配
    $('.site-tree-mobile').on('click', function(){
        if ($(".layui-layout-admin ").hasClass("admin-nav-mini")) {
            $(".layui-layout-admin ").removeClass("admin-nav-mini");
        }
        $('.admin-container').addClass('admin-nav-mini');
    });
    $('.site-mobile-shade').on('click', function(){
        $('.admin-container').removeClass('admin-nav-mini');
    });
    //刷新当前
    $(".refresh").on("click", function () {
        refresh();
    });
    // 添加新窗口
    $(document).on("click", ".layui-nav .layui-nav-item a", function (event) {
        event.preventDefault();
        //如果不存在子级
        if ($(this).siblings().length == 0) {
            addTab($(this));
            $('body').removeClass('site-mobile'); //移动端点击菜单关闭菜单层
        }
        $(this).parent("li").siblings().removeClass("layui-nav-itemed");
    });
    //删除tab，tab关闭 监听
    $(document).on("click", ".top_tab li i.layui-tab-close", function () {
        bodyTab.monitorCloseTab(this);
    });
    //监听切换tab设置当前选中tab
    $(document).on("click", ".top_tab li", function () {
        bodyTab.monitorSwitchTab(this);
    });
    //双击时刷新当前窗口
    $(document).on("dblclick", ".layui-nav .layui-nav-item a", function (event) {
        event.preventDefault();
        //如果不存在子级
        if ($(this).siblings().length == 0) {
            $(".refresh")[0].click();
        }
    });
    //刷新后还原打开的窗口
    if (window.sessionStorage.getItem("menu")) {
        bodyTab.refreshRestoreTab();
        Menu();
    }
    //判断是否是刷新来的tab，是的话刷新当前页面
    element.on('tab(bodyTab)', function (data) {
        var notNewTabEle = $(this).find("[layuiTabTypeOpen='notNewTab']");
        if (notNewTabEle[0] != undefined) {
            notNewTabEle.removeAttr('layuiTabTypeOpen');
            $(".refresh")[0].click();
        }

        //切换tab时选中左侧菜单
        bodyTab.selectedMenu($(this).find('cite').html());
        Menu();
    });
    //关闭其他
    $(".closePageOther").on("click", function () {
        bodyTab.CloseOtherTab();
    });
    //关闭全部
    $(".closePageAll").on("click", function () {
        bodyTab.CloseAllTab();
    });
    /**
     * 打开新窗口
     * @param {object} _this jquery元素 
     */
    function addTab(_this) {
        bodyTab.tabAdd(_this);
        Menu();
    }
    /* 刷新方法 */
    function refresh() {  
        //获取当前打开的元素
        var showElement = $(".clildFrame .layui-tab-item.layui-show").find("iframe")[0];
        //手动设置一下src刷新
        showElement.src = showElement.src;
        //从缓存取页面刷新
        showElement.contentWindow.location.reload(false);
        //从服务器重新取页面刷新
        showElement.contentWindow.location.reload(true);
        //跳转式刷新
        showElement.contentWindow.location.href = showElement.src;
    }
    $(window).resize(function () {
        $("#navBar").height($(window).height() - 101);
    });
    function Menu() {  
        $("#top_tabs li").on("contextmenu", function (v) {
            var u = $(this).attr("lay-id");
            contextMenu.show([{
                icon: "layui-icon layui-icon-refresh",
                name: "刷新当前",
                click: function() {
                    refresh();
                }
            }, {
                icon: "layui-icon layui-icon-close-fill ctx-ic-lg",
                name: "关闭当前",
                click: function() {
                    admin.closeThisTabs(u)
                }
            }, {
                icon: "layui-icon layui-icon-unlink",
                name: "关闭其他",
                click: function() {
                    admin.closeOtherTabs(u)
                }
            }, {
                icon: "layui-icon layui-icon-close ctx-ic-lg",
                name: "关闭全部",
                click: function() {
                    admin.closeAllTabs()
                }
            }], v.clientX, v.clientY);
            return false
        })
    }
    Menu();
});